--[[
    线程对应的lua文件，线程不断的发送TLV格式的数据
    假定标识域是2个字节，固定的 55 AA， 长度域是4个字节，剩下的是数据域 ，+CRC校验位（1个字节）
--]]
-------------------模块区-------------------
local logger = require("dx_logger")
local socket = require("socket.core")
local queue = require("dx_queue")
local util = require("dx_util")

-------------------变量区-------------------
local myqueue = _G.myqueue

-------------------函数区-------------------

local function random_length()
    -- 以当前时间为随机种子生成随机1-100之间的数
    math.randomseed(tostring(os.time()):reverse():sub(1, 6))
    return math.random(1, 20)
end

local function run()
    while true do
        local length = random_length()
        -- 把数据都存在table里，处理的速度会比字符串拼接快很多
        local pack = { "55", "AA" } --标识域
        string.format("%08x", length):gsub('..', function(cc) --长度域
            table.insert(pack, cc)
        end)
        for i = 1, length do
            table.insert(pack, string.format("%02x", 97)) --数据域(示例随便设置一个值，循环设置数据为lenght个长度的'a')
        end
        for i = 1, (2 + 4 + length) do
            util.sleep(0.005)
            queue.push(myqueue, pack[i], 0)
        end
        queue.push(myqueue,util.crc(pack),0)
        util.sleep(5)
    end
end

-------------------主流程-------------------

run()
